
About the Version 2 PICT Files

Macintosh Developer Technical Support
9-17-87


	There are eight version 2 PICT files in this package. Each of the files is of 
type 'PICT' and creator 'MDTS'. The file formats are described in the document, 
ŇMacintosh File Format & Picture Structure for Graphic Applications.Ó, which 
is available from APDA (Apple ProgrammerŐs and DeveloperŐs Association) as ŇPICT
File Format NotesÓ (APDA# KMBPFN).  This document describes what things are tested 
in each of the pictures.

	In addition to the PICT files, there is also a very simple application, called 
PICTViewer, that will let you display files of type PICT. PICTViewer isnŐt too 
smart, and doesnŐt bother with things like spooling large pictures. You use it 
to see what these (and other) PICTs look like when drawn by Color QuickDraw.

	These files are designed to help developers test applications which parse 
version 2 pictures. If your application parses the picture structure manually, 
then it is important that your application be able to read all of these 
pictures successfully. Problems encountered when parsing these pictures will 
indicate possible problems that you may have with other pictures.

	If your application does not parse pictures, then these PICTs can be used to 
show the effect of different bit depths and the use of the Palette Manager from 
within your application.

	Questions about these pictures should be directed to Macintosh Developer 
Technical Support at one of the following addresses:

MCI Mail : MACTECH

AppleLink : MacDTS

U.S. Mail:

Macintosh Developer Technical Support
Apple Computer
20525 Mariani Ave.
Cupertino, CA 95014
M/S 27-T


PICT 1, PICT 2, PICT 3:

	These three PICT files all contain the same picture. Each of these files is a 
large, full-color pixel image. The pictures were generated while in 8-bit 
depth, so they can play back at high color resolution. The only difference in 
these files is the number of bands into which the image was divided.

	When deciding how much data to CopyBits when generating a picture to be 
transported to other applications, there are a couple of issues to consider. 
The more bands that you use, the less memory is used by each CopyBits call. On 
the other hand, each CopyBits call that is made stores a complete copy of the 
color table into the picture.

	The band sizes in each of the PICTs are:
   	 	PICT 1  :   about 6K / band
    	PICT 2  :   about 20K / band
   		PICT 3  :   about 50K / band


PICT 4:

	This picture exercises the various PixPat opcodes. The picture consists of 64 
rectangles filled with dithered patterns and framed with solid versions of the 
same color. Note that the frame color may not exactly match the dithered 
pattern due to dithering accuracy and availability of colors in the color 
table. You should, however, see approximately the same picture in both 4-bit 
and 8-bit depths.

	The 64 rectangles should be on a background of light red (dithered), and the 
whole picture should be surrounded by a light blue border (also dithered).


PICT 5:

	Like the previous picture, this PICT uses dithered patterns. This time, 4096 
patterns are displayed by the picture, in a 64 by 64 matrix. Your application 
should be able to handle the 4096 elements of this picture without dying.


PICT 6:

	This picture shows the difference between normal color inversion and color 
hiliting. Text is written in a shade of red. Part of the text is inverted, and 
part of the text is hilited.

	Since hiliting is done by setting the hiliteMode flag and then inverting, 
application should take care to use hiliting when the hiliteMode flag is set. 
This picture uses the default hilite color, which can be set by your 
application.


PICT 7:

	This picture uses many of the standard opcodes from version one pictures, 
including RoundRects, Arcs, Picture Comments, and Regions. Even if your 
application cannot use these elements, you should be able to safely bypass 
those opcodes that you donŐt understand.

	Additionally, this picture uses a new arithmetic color drawing mode. The mode 
is set using the standard PenMode opcode. Check to make sure that your 
application interprets the PenMode value correctly for 1-bit depth and 
multi-bit depths. The mode used is adMax (37).


PICT 8:

	This picture uses many of the reserved opcodes. Note that these opcodes are 
still undefined and wonŐt do anything with the current version of Color 
QuickDraw. [This picture may cause problems with future versions of Color 
QuickDraw that use some of the reserved opcodes.]

	This picture is included to allow you to make sure that your application can 
correctly bypass all of the opcodes, even the undefined ones. In version 2 
pictures, the sizes of all of the opcodes is defined so that your application 
can skip over the ones that it doesnŐt understand, and continue with the rest 
of the picture.

	Mixed in with the reserved opcodes are 15 FrameRect calls. Each rectangle is 
inset by 5 pixels on every side from the previous rectangle. If you donŐt 
safely draw all 15 rectangles, then you can use the number of rectangles that 
you DID draw to help you find that opcodes that are causing problems.

	Here are the operations of this picture, in order:

		Use Default hilite color            [$001E]
		ClipRect to full picture            [$0001 000A 0000 0000 012C 012C]
		RGBForeColor (black)                [$001A 0000 0000 0000]
		FrameRect #1
		reserved opcode with no data        [$0024 0000]
		FrameRect #2
		reserved opcode with 4 bytes data   [$0024 0004 1234 5678]
		FrameRect #3
		reserved opcode with 5 bytes data   [$0024 0005 1234 5678 9A]
		implied 1-byte pad                  [$00]
		FrameRect #4
		reserved opcodes $35, $36, and $37  [$0035 0123 4567 89AB CDEF]
          			                        [$0036 0123 4567 89AB CDEF]
                                    		[$0037 0123 4567 89AB CDEF]
		FrameRect #5
		reserved opcodes $3D, $3E, and $3F  [$003D 003E 003F]
		FrameRect #6
		reserved opcodes $65, $66, and $67  [$0065 0123 4567 89AB CDEF 1011 1213]
                                    		[$0066 0123 4567 89AB CDEF 1011 1213]
                                    		[$0067 0123 4567 89AB CDEF 1011 1213]
		FrameRect #7
		reserved opcodes $6D, $6E, and $6F  [$006D FEDC BA98]
                                    		[$006E FEDC BA98]
                                    		[$006F FEDC BA98]
		FrameRect #8
		reserved opcodes $85, $86, and $87  [$0085 000A 0000 0000 0102 0304]
                                    		[$0085 000A 0000 0000 0102 0304]
                                    		[$0085 000A 0000 0000 0102 0304]
		FrameRect #9
		reserved opcode $A7                 [$00A7 000A 0102 0304 0506 0708 090A]
		FrameRect #10
		reserved opcode $E0                 [$00E0 0000 0004 1234 5678]
		FrameRect #11
		reserved opcode $305                [$0305 0102 0304 0506]
		FrameRect #12
		reserved opcode $1000               [$1000]
                                    		[$0001 0203 0405 0607 0809 0A0B 0C0D 0E0F]
                                    		[$1011 1213 1415 1617 1819 1A1B 1C1D 1E1F]
		FrameRect #13
		reserved opcode $8037               [$8037]
		FrameRect #14
		reserved opcode $9876               [$9876 0000 0002 FFFF]
		FrameRect #15